import java.util.Scanner;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2022-06-07
 * Time:21:14
 */

import java.util.Scanner;


//public class Main {
//
//    public static void main(String[] args) {
//        // Sub是需要你定义的子类
//        Base base = new Sub();
//
//        Scanner scanner = new Scanner(System.in);
//        while (scanner.hasNextInt()) {
//            int x = scanner.nextInt();
//            int y = scanner.nextInt();
//            base.setX(x);
//            base.setY(y);
//            System.out.println(base.calculate());
//        }
//    }
//
//}
//
//abstract class Base {

//    private int x;
//    private int y;
//
//    public int getX() {
//        return x;
//    }
//
//    public void setX(int x) {
//        this.x = x;
//    }
//
//    public int getY() {
//        return y;
//    }
//
//    public void setY(int y) {
//        this.y = y;
//    }
//
//    public int calculate() {
//        if (avg() == 0) {
//            return 0;
//        } else {
//            return sum() / avg();
//        }
//    }
//
//    /**
//     * 返回x和y的和
//     */
//    public abstract int sum();
//
//    /**
//     * 返回x和y的平均值
//     */
//    public abstract int avg();
//
//}
//
//class Sub extends Base {
//    @Override
//    public int sum() {
//        return getX()+getY();
//    }
//
//    @Override
//    public int avg() {
//        return (getX()+getY())/2;
//    }
//
//    //write your code here......
//
//
//}

//public class Main {
//        //描述
//        //父类Base有两个子类：Sub1、Sub2，现有一个方法getClassName()，要求传入Base类型的实例，在方法内部判定其具体的类型，返回的是类型的简单名字（不含包名），请补全getClassName()方法的判断逻辑。
//        //输入描述：
//        //输入要实例化的类名：Base、Sub1、Sub2 三者之一。
//        //输出描述：
//        //返回实例的实际类名（简化类名，不包含包的名字）。
//        //示例1
//        //输入：
//        //
//        //Sub1
//        //
//        //输出：
//        //
//        //Sub1
//        //
//        //示例2
//        //输入：
//        //
//        //Sub2
//        //
//        //输出：
//        //
//        //Sub2
//        //
//        //示例3
//        //输入：
//        //
//        //Base
//        //
//        //输出：
//        //
//        //Base
//        //
//    public static void main(String[] args) throws Exception {
//        Scanner scanner = new Scanner(System.in);
//        while (scanner.hasNext()) {
//            String className = scanner.next();
//            Base obj = (Base) Class.forName(className).newInstance();
//            System.out.println(getClassName(obj));
//        }
//    }
//
//    public static String getClassName(Base obj) {
//
//        //write your code here......
//        return obj.getClass().getName();
//
//    }
//
//}
//
//class Base {
//
//}
//
//class Sub1 extends Base {
//
//}
//
//class Sub2 extends Base {
//
//}
//    //描述
//    //已知有三个类：First、Second、Third。要求定义一个打印方法，支持传入任意引用类型的参数（包括上述三个类），并在方法内部打印出对象的字符串形式。
//    //输入描述：
//    //类名
//    //输出描述：
//    //由该类实例化出来的对象的字符串表示
//    //示例1
//    //输入：
//    //
//    //First
//    //
//    //输出：
//    //
//    //First
//    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//        Scanner scanner = new Scanner(System.in);
//        while (scanner.hasNext()) {
//            String className = scanner.next();
//            // print就是需要你定义的方法
//            print(Class.forName(className).newInstance());//forName:需要抛异常throws ClassNotFoundException, InstantiationException, IllegalAccessException
//        }//Class:每当编写并且编译了一个新类，就会产生一个class对象（更恰当的说，是被保存在一个同名的class文件中）
//         //实际上在Java中每个类都有且只有一个Class对象
//    }
//    public static void print(Object obj){
//        System.out.print(obj.getClass().getName());
//    }
//}
//class First {
//    public String toString() {
//        return "First";
//    }
//}
//
//class Second {
//    public String toString() {
//        return "Second";
//    }
//}
//
//class Third {
//    public String toString() {
//        return "Third";
//    }
//}




